package com.ruoyi.xp.order.service;

import com.ruoyi.xp.order.domain.Order;
import com.ruoyi.xp.order.dto.*;

import java.util.List;

/**
 * @author chendx
 */
public interface IOrderInfoService {

    /**
     * 增加虾皮订单数据
     *
     * @param orderInfoDto
     */
    public void addOrderInfo(OrderInfoDto orderInfoDto);

    /**
     * 增加虾皮订单商品明细
     *
     * @param orderItemInfoDto
     */
    public void addOrderItemInfo(OrderItemInfoDto orderItemInfoDto);

    /**
     * 增加虾皮订单商品明细出货信息
     *
     * @param orderItemInfoDto
     */
    public void addOrderItemGoodsOrHeadPackageInfo(OrderItemInfoDto orderItemInfoDto);

    /**
     * 更新虾皮订单商品明细出货信息
     *
     * @param orderItemInfoDto
     */
    public void updateOrderItemGoodsOrHeadPackageInfo(OrderItemInfoDto orderItemInfoDto);

    /**
     * 获取没有商品明细的订单
     *
     * @return
     */
    public List<OrderDto> getOrderHaveNoItem();

    /**
     * 查询没有出货信息的订单商品明细列表
     *
     * @return
     */
    public List<OrderItemDto> getOrderItemHaveNoGoodsOrHeadPackage();

    /**
     * 查询仓库待处理订单
     *
     * @return
     */
    public List<OrderDto> getWarehouseInitOrder();

    /**
     * 查询仓库处理中订单
     *
     * @return
     */
    public List<OrderDto> getWareHouseWaitProcessOrder();

    /**
     * 查询仓库待打包订单
     *
     * @return
     */
    public List<OrderDto> getWareHouseWaitPackOrder();

    /**
     * 更新订单信息
     *
     * @param orderDto
     * @return
     */
    public int updateOrderStatus(OrderDto orderDto);

    /**
     * 获取待发货待订单
     *
     * @return
     */
    public List<OrderDto> getOrderWaitToShip();

    /**
     * 获取已发货未完成的订单
     *
     * @return
     */
    public List<OrderDto> getOrderShipping();

    /**
     * 查询未有运费的订单
     *
     * @return
     */
    public List<OrderDto> getHaveNoShippingFeeOrder();

    /**
     * 更新订单收入
     *
     * @param orderIncomeDto
     * @return
     */
    public int updateOrderIncome(OrderIncomeDto orderIncomeDto);

    /**
     * 更新采购价
     *
     * @param orderSn
     * @return
     */
    public void updatePurchasePrice(String orderSn);

    /**
     * 获取未有货代打包费用的订单
     *
     * @return
     */
    public List<OrderIncomeDto> getHaveNoWarehousePackageAmountOrder();
}
